<?php

/**
 * Базовый класс локализаций.
 *
 */
abstract class Kernel_i18n_Abstract {

    /**
     * Количество форм слова для множественного числа.
     *
     * @var integer
     */
    protected $n_plural;

    /**
     * Возвращает перевод
     *
     * @param unknown_type $phrases
     * @param unknown_type $nubmer
     * @return unknown
     */
    final public function plural($phrases, $nubmer) {
        if (count($phrases) != $this->n_plural) {
            trigger_error('', E_USER_ERROR);
        }
        return sprintf($phrases[$this->_form($nubmer)], $nubmer);
    }

    /**
     * Возвращает индекс перевода для указанного целочиленного значения.
     *
     * @param   integer $number
     */
    abstract protected function _form($number);
}
